package xyz.lovegu.server.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import xyz.lovegu.server.sys.common.DataGridView;
import xyz.lovegu.server.sys.common.ResultObj;
import xyz.lovegu.server.sys.dos.User;
import xyz.lovegu.server.sys.vos.UserVo;

/**
 * @author 老顾
 * @title: UserService
 * @projectName campus-prevention-system
 * @email: 1437594522@qq.com
 * @date 2022/5/4 23:42
 */
public interface UserService extends IService<User> {
    /**
     * 添加学生
     *
     * @param userVo
     * @return
     */
    ResultObj addStudent(UserVo userVo);

    /**
     * 添加老师
     *
     * @param userVo
     * @return
     */
    ResultObj addTeacher(UserVo userVo);

    /**
     * 根据id删除用户（逻辑删除）
     * @param userVo
     * @return
     */
    ResultObj delUserById(UserVo userVo);

    /**
     * 根据id查询一个用户
     *
     * @param id
     * @return
     */
    Object getUserById(Integer id);

    /**
     * 修改用户
     *
     * @param userVo
     * @return
     */
    ResultObj updateUserInfo(UserVo userVo);

    /**
     * 重置用户密码
     *
     * @param userVo
     * @return
     */
    ResultObj resetUserPassword(UserVo userVo);

    /**
     * 修改用户密码
     *
     * @param userVo
     * @return
     */
    ResultObj updateUserPassword(UserVo userVo);

    /**
     * 根据班级id查询学生
     *
     * @param classId
     * @return
     */
    Object getClassIdByStudent(Integer classId);

    /**
     * 根据班级id查询老师
     *
     * @param classId
     * @return
     */
    Object getClassIdByTeacher(Integer classId);

    /**
     * 查询所有用户
     *
     * @param userVo
     * @return
     */
    DataGridView getAllUsers(UserVo userVo);
}
